home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 23 / AACD 23.iso / AACD / Programming / Wipeout / source / wipeoutsemaphore.h < prev   
C/C++ Source or Header  |  2001-02-06  |  2KB  |  85 lines

  1. /*
  2.  * $Id: wipeoutsemaphore.h 1.7 1998/04/14 09:28:17 olsen Exp olsen $
  3.  *
  4.  * :ts=4
  5.  *
  6.  * Wipeout -- Traces and munges memory and detects memory trashing
  7.  *
  8.  * Written by Olaf `Olsen' Barthel <olsen@sourcery.han.de>
  9.  * Public Domain
  10.  */
  11.  
  12. #ifndef _WIPEOUTSEMAPHORE_H
  13. #define _WIPEOUTSEMAPHORE_H 1
  14.  
  15. /****************************************************************************/
  16.  
  17. #include <utility/tagitem.h>
  18.  
  19. /****************************************************************************/
  20.  
  21. #define WIPEOUTSEMAPHORENAME        "« Wipeout »"
  22. #define WIPEOUTSEMAPHOREVERSION        2
  23. #define WIPEOUTSEMAPHOREREVISION    1
  24.  
  25. /****************************************************************************/
  26.  
  27. typedef LONG (* ASM WipeoutControlFunc)(REG(a0) struct TagItem *tags);
  28.  
  29. /****************************************************************************/
  30.  
  31. struct WipeoutSemaphore
  32. {
  33.     struct SignalSemaphore    ws_SignalSemaphore;    /* regular semaphore */
  34.     WORD                    ws_Version;            /* semaphore version number */
  35.     WORD                    ws_Revision;        /* semaphore revision number */
  36.  
  37.     WipeoutControlFunc        ws_ControlFunc;
  38.  
  39.     UBYTE                    ws_SemaphoreName[(sizeof(WIPEOUTSEMAPHORENAME)+3) & ~3];
  40.  
  41.     struct Task *            ws_WipeoutTask;        /* semaphore creator */
  42.     ULONG                    ws_WakeupMask;        /* mask to wake creator with */
  43.  
  44.     struct Task *            ws_Client;            /* client interfacing to creator */
  45.     LONG                    ws_Command;            /* command to perform by creator */
  46.     APTR                    ws_Parameter;        /* parameter for command */
  47.     LONG                    ws_Error;            /* creator result code */
  48.  
  49.     BOOL *                    ws_IsActive;        /* all options */
  50.     BOOL *                    ws_ShowFail;
  51.     BOOL *                    ws_CheckConsistency;
  52.     BOOL *                    ws_WaitAfterHit;
  53.     BOOL *                    ws_NameTag;
  54.     BOOL *                    ws_NoReuse;
  55.     BOOL *                    ws_ARegCheck;
  56.     BOOL *                    ws_DRegCheck;
  57.     BOOL *                    ws_StackCheck;
  58.     LONG *                    ws_StackLines;
  59.     LONG *                    ws_CheckDelay;
  60. };
  61.  
  62. /****************************************************************************/
  63.  
  64. /* the commands the Wipeout semaphore owner knows */
  65. enum
  66. {
  67.     WIPEOUTCMD_UpdateFilterList,
  68.     WIPEOUTCMD_NewCheckDelay,
  69.     WIPEOUTCMD_Remunge,
  70.     WIPEOUTCMD_Mark,
  71.     WIPEOUTCMD_Unmark,
  72.     WIPEOUTCMD_ShowUnmarked,
  73. };
  74.  
  75. /****************************************************************************/
  76.  
  77. #define WOT_BASE (TAG_USER+20010602)
  78.  
  79. #define WOT_Address    (WOT_BASE+1)
  80. #define WOT_SetPC    (WOT_BASE+2)
  81.  
  82. /****************************************************************************/
  83.  
  84. #endif /* _WIPEOUTSEMAPHORE_H */
  85.